<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta http-equiv="cache-control" content="no-cache">
<title>Genivia - mq.h File Reference</title>
<link href="genivia_tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="genivia_content.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
 <div id="titlearea">
  <table height="72px" width="100%" cellspacing="0" cellpadding="0">
   <tbody>
    <tr>
     <td width="10%">&nbsp;</td>
     <td width="175px"><a href="https://www.genivia.com"><img alt="Genivia" src="GeniviaLogo2_trans_noslogan.png"/></a></td>
     <td class="tab_home"><a href="https://www.genivia.com">Home</a></td>
     <td class="tab_home"><a href="https://www.genivia.com/docs.html">Documentation</a></td>
     <td>
      <div style="float: right; font-size: 18px; font-weight: bold;">mq.h File Reference</div>
      <br>
      <div style="float: right; font-size: 10px;">updated Sun Dec 9 2018 by Robert van Engelen</div>
     </td>
     <td width="10%">&nbsp;</td>
    </tr>
   </tbody>
  </table>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_b4c3aec6cd8f28418150dce663061cfa.html">plugin</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">mq.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;stdsoap2.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for mq.h:</div>
<div class="dyncontent">
<div class="center"><img src="mq_8h__incl.png" border="0" usemap="#mq_8h" alt=""/></div>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="mq_8h__dep__incl.png" border="0" usemap="#mq_8hdep" alt=""/></div>
<map name="mq_8hdep" id="mq_8hdep">
<area shape="rect" id="node3" href="mq_8c.html" title="mq.c" alt="" coords="6,83,55,111"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsoap__mq__data.html">soap_mq_data</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Plugin data.  <a href="structsoap__mq__data.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queued inbound message (in linked list).  <a href="structsoap__mq__msg.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message queue.  <a href="structsoap__mq__queue.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a17566560281374870f12ef5481eb931a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a17566560281374870f12ef5481eb931a">SOAP_MQ_ID</a>&#160;&#160;&#160;&quot;MQ-0.9&quot;</td></tr>
<tr class="separator:a17566560281374870f12ef5481eb931a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a96bf20fae13f6f4318f1592b9d0adfba"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a96bf20fae13f6f4318f1592b9d0adfba">soap_mq</a> (struct soap *soap, struct soap_plugin *plugin, void *arg)</td></tr>
<tr class="separator:a96bf20fae13f6f4318f1592b9d0adfba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abffc350d4d0892c678b294badd572f11"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#abffc350d4d0892c678b294badd572f11">soap_mq_queue</a> (struct soap *)</td></tr>
<tr class="memdesc:abffc350d4d0892c678b294badd572f11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use <a class="el" href="mq_8c.html#a611b2a210304d6f60c628e443ff90b92" title="Receive message from socket and queue it at the end of the queue. ">soap_mq_get()</a> to receive a message from the current socket to add to the queue.  <a href="#abffc350d4d0892c678b294badd572f11">More...</a><br /></td></tr>
<tr class="separator:abffc350d4d0892c678b294badd572f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a762d9aa6281902622b846135918b897f"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a762d9aa6281902622b846135918b897f">soap_mq_get</a> (struct soap *soap, struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *)</td></tr>
<tr class="memdesc:a762d9aa6281902622b846135918b897f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive message from socket and queue it at the end of the queue.  <a href="#a762d9aa6281902622b846135918b897f">More...</a><br /></td></tr>
<tr class="separator:a762d9aa6281902622b846135918b897f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5efe3ffa00498c5b01ccdb5d447cffa2"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a5efe3ffa00498c5b01ccdb5d447cffa2">soap_mq_begin</a> (struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *)</td></tr>
<tr class="memdesc:a5efe3ffa00498c5b01ccdb5d447cffa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get first message in queue. Use msg-&gt;soap to invoke service from the queued message, as in soap_serve(&amp;msg-&gt;soap).  <a href="#a5efe3ffa00498c5b01ccdb5d447cffa2">More...</a><br /></td></tr>
<tr class="separator:a5efe3ffa00498c5b01ccdb5d447cffa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7609d8ff2851cb2b0237710216039aa"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#aa7609d8ff2851cb2b0237710216039aa">soap_mq_next</a> (struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *)</td></tr>
<tr class="memdesc:aa7609d8ff2851cb2b0237710216039aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next message in queue. Use msg-&gt;soap to invoke service from the queued message, as in soap_serve(&amp;msg-&gt;soap).  <a href="#aa7609d8ff2851cb2b0237710216039aa">More...</a><br /></td></tr>
<tr class="separator:aa7609d8ff2851cb2b0237710216039aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85cbc8e97baa65dc3b3c6bc124213c27"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a85cbc8e97baa65dc3b3c6bc124213c27">soap_mq_del</a> (struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *, struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *)</td></tr>
<tr class="memdesc:a85cbc8e97baa65dc3b3c6bc124213c27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete message from queue, e.g. after processing it. Delete entire queue when msg==NULL. Note: structures will be deallocated with deallocation with soap_end().  <a href="#a85cbc8e97baa65dc3b3c6bc124213c27">More...</a><br /></td></tr>
<tr class="separator:a85cbc8e97baa65dc3b3c6bc124213c27"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a20d6f17af7aee5cf23b9ffc2a6011a61"><td class="memItemLeft" align="right" valign="top">const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8h.html#a20d6f17af7aee5cf23b9ffc2a6011a61">soap_mq_id</a> []</td></tr>
<tr class="separator:a20d6f17af7aee5cf23b9ffc2a6011a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a17566560281374870f12ef5481eb931a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SOAP_MQ_ID&#160;&#160;&#160;&quot;MQ-0.9&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a96bf20fae13f6f4318f1592b9d0adfba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_mq </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>plugin registry function, invoked by soap_register_plugin </p>

</div>
</div>
<a class="anchor" id="a5efe3ffa00498c5b01ccdb5d447cffa2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * soap_mq_begin </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *&#160;</td>
          <td class="paramname"><em>mq</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get first message in queue. Use msg-&gt;soap to invoke service from the queued message, as in soap_serve(&amp;msg-&gt;soap). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mq</td><td>pointer to the message queue structure created by <a class="el" href="mq_8c.html#ab4229c48976d050769c40495fb9281d2" title="Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap...">soap_mq_queue()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to first message in the queue, or NULL </dd></dl>

</div>
</div>
<a class="anchor" id="a85cbc8e97baa65dc3b3c6bc124213c27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void soap_mq_del </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *&#160;</td>
          <td class="paramname"><em>mq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete message from queue, e.g. after processing it. Delete entire queue when msg==NULL. Note: structures will be deallocated with deallocation with soap_end(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mq</td><td>pointer to the queue structure </td></tr>
    <tr><td class="paramname">msg</td><td>pointer to a message in the queue, when NULL delete entire queue </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a762d9aa6281902622b846135918b897f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * soap_mq_get </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *&#160;</td>
          <td class="paramname"><em>mq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Receive message from socket and queue it at the end of the queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>current context </td></tr>
    <tr><td class="paramname">mq</td><td>pointer to the message queue structure created by <a class="el" href="mq_8c.html#ab4229c48976d050769c40495fb9281d2" title="Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap...">soap_mq_queue()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the message received and queued, or NULL </dd></dl>

</div>
</div>
<a class="anchor" id="aa7609d8ff2851cb2b0237710216039aa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * soap_mq_next </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get next message in queue. Use msg-&gt;soap to invoke service from the queued message, as in soap_serve(&amp;msg-&gt;soap). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>pointer to current message in the queue </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to next message in the queue, or NULL </dd></dl>

</div>
</div>
<a class="anchor" id="abffc350d4d0892c678b294badd572f11"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> * <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use <a class="el" href="mq_8c.html#a611b2a210304d6f60c628e443ff90b92" title="Receive message from socket and queue it at the end of the queue. ">soap_mq_get()</a> to receive a message from the current socket to add to the queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>current context </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the queue structure </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a20d6f17af7aee5cf23b9ffc2a6011a61"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char soap_mq_id[]</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<hr class="footer">
<address class="footer">
Copyright (C) 2018, Robert van Engelen, Genivia Inc., All Rights Reserved.
</address>
<address class="footer"><small>
Converted on Sun Dec 9 2018 16:27:25 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.11</small></address>
<br>
<div style="height: 246px; background: #DBDBDB;">
</body>
</html>
